#ifndef _MEMORY_APP_H_
#define _MEMORY_APP_H_

#include <stdint.h>
#include <stdbool.h>
#include "memory_board.h"

// 更新设备参数延时 - 1s
#define DELAY_IN_UPDATE_DEVICE_PARAMETERS               (1000ul)

/**
 * @brief 更新设备参数
 *
 */
extern void MemoryUpdateDeviceParameters(void);

/**
 * @brief 更新设备参数（不等待）
 *
 */
extern void MemoryUpdateDeviceParametersNoWait(void);

/**
 * @brief 从内存中加载设备参数
 *
 */
extern void MemoryLoadDeviceParametersFromMemory(void);

/**
 * @brief 写开锁日志
 *
 * @param KeyType     - 钥匙类型
 * @param pKeyValueIn - 密钥键值
 * @param Status      - 开锁状态
 * @return uint16_t   - 写日志编码
 */
extern uint16_t MemoryWriteUnlockLogMessage(const uint8_t KeyType, const uint8_t *pKeyValueIn, uint8_t Status);

/**
 * @brief 初始化设备参数
 *
 * @return bool - 初始化状态（true：成功 false：失败）
 */
extern bool MemoryInitialisingdeviceparameters(void);

/**
 * @brief 初始化内存读写相关功能
 *
 */
extern void MemoryConfiguartion(void);

#endif
